//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#ifndef _ProcessCathPDBProfile_h__
#define	_ProcessCathPDBProfile_h__
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#include "CathPDBProfile.h"
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
class ProcessCathPDBProfile {
  
  private:
    
    String*                     namefileFASTAProfile;
    String*                     namefileFASTADomainLigand;
    
    String*                     locationPDB;
    String*                     locationPDBAtomDomain;
    String*                     locationPDBHetAtmDomain;
    
    TListE <String>*            filters;
    
    TListE <CathPDBProfile>*    listDomainProfile;
    
  public:
    
    ProcessCathPDBProfile();
    ProcessCathPDBProfile(const ProcessCathPDBProfile&);
    ProcessCathPDBProfile(const ProcessCathPDBProfile*);
    
    ~ProcessCathPDBProfile();

    void                        NamefileFASTAProfile (String*);
    void                        NamefileFASTADomainLigand (String*);
    void                        LocationPDB (String*);
    void                        LocationPDBAtomDomain (String*);
    void                        LocationPDBHetAtmDomain (String*);
    void                        Filters (TListE <String>*);
    void                        ListDomainProfile (TListE <CathPDBProfile>*);
    
    String*                     NamefileFASTAProfile (void);
    String*                     NamefileFASTADomainLigand (void);
    String*                     LocationPDB (void);
    String*                     LocationPDBAtomDomain (void);
    String*                     LocationPDBHetAtmDomain (void);
    TListE <String>*            Filters (void);
    TListE <CathPDBProfile>*    ListDomainProfile (void);
    
    bool                        AddFilter (String*);
    bool                        AddFilter (char*);
    bool                        CleanFilters (void);
    bool                        ExecuteFilters (void);
    
    bool                        LoadDataFastaProfile (void);
    
    bool                        CreatePDBDomainAtom (void);
    bool                        CreatePDBDomainHetAtm (void);
    bool                        CreateFASTADomainLigand (double);
    bool                        CreateSeqFASTAComplete (String*);
    bool                        CreateSeqFASTACompleteUsingHeaders (String*, String*);
    bool                        CreateSeqFASTAInitialPosCompleteUsingHeaders (String*, String*);
    
};
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#endif
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
